In today's computing environment the use of distributed or “global” transactions is becoming more widespread with the adoption of Java EE component based architectures. The XA standard is an X/Open specification for distributed transaction processing (DTP) across heterogeneous data sources (e.g. Oracle Database and DB2) that was published in 1991. A general overview of the XA specification for distributed transaction processing, including basic architecture Information can be found in the “X/Open CAE Specification—Distributed Transaction Processing: The XA Specification” (X/Open 1991) which is incorporated herein by reference. A copy of this document can be obtained by requesting X/Open Document No. XO/CAE/91/300 or ISBN 1 872630 24 3 from X/Open Company, Ltd., 1010 El Camino Real, Suite 380, Menlo Park, Calif. 94025, U.S.A. The XA specification describes the interface between the transaction coordinator and the data sources that participate in the distributed transaction. Within XA the transaction coordinator is termed the transaction manager and the participating data sources are termed the resource managers. Transaction managers and resource managers that follow the XA specification are said to be XA compliant.
Some products such as the Oracle database and Oracle WebLogic Server can act as either transaction managers or resource managers or both within the same XA transaction. Examples of XA transaction managers are: Oracle® Tuxedo, Oracle® WebLogic Server, the Oracle® database and IBM® WebSphere Application Server. Examples of XA resource managers are: Oracle® Database, IBM® DB2, MS-SQL, IBM® MQ-Series and Java Message Service (JMS). Additional information concerning design implications when using XA or Oracle® controlled distributed transactions can be found in “Oracle White Paper—XA and Oracle controlled Distributed Transactions” (Oracle 2010) which is incorporated herein by reference.
The XA specification thus describes a protocol and interface between an application server, transaction manager and one or more resource managers. The XA specification enables a plurality of resources, such as application servers and databases, to be accessed within the same transaction, thus preserving the ACID (atomicity, consistency, isolation, durability) properties of the transaction in a distributed transaction processing environment.
In order to ensure interoperability of components, the XA specification requires implementation of particular communications between the application server, transaction manager and one or more local resource managers. However such communications require a communications overhead that consumes network resources and introduces additional latency.